Skip to content

[WIP] Build new webinterface for Tvheadend using old interface as baseline#8

Draft
Copilot wants to merge 8 commits into
masterfrom
copilot/build-new-webinterface-for-tvheadend
Draft

[WIP] Build new webinterface for Tvheadend using old interface as baseline#8
Copilot wants to merge 8 commits into
masterfrom
copilot/build-new-webinterface-for-tvheadend

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 26, 2026

This PR continues the React-based modern Tvheadend web interface migration using the legacy interface as functional baseline.

Progress update

Completed work now includes:

  • Assessment of the modern React UI baseline
  • Status page using real API endpoints for connections, subscriptions, and inputs
  • Dashboard improvements using live server/DVR API data
  • EPG event details dialog with full program metadata and recording actions
  • New Add Recording dialog flow for EPG events (including DVR profile selection)
  • DVR action wiring improvements (delete/stop/abort/cancel in current UI flow)
  • Configuration Setup Wizard now implemented as a real API-driven flow (load/save via /api/wizard/*, previous/next navigation, status progress polling, cancel/finish handling)
  • DVR details dialog refinements:
    • loads full DVR entry data via idnode API on open
    • exposes additional metadata fields (including duration and filename)
    • adds parity actions from legacy flows (re-record toggle, move to failed/finished, remove from storage)
  • TV Adapters tree-view improvements in modern Configuration:
    • derives adapter enabled/disabled state with legacy-compatible fallback (params.active when enabled is absent)
    • reads signal/stat metrics from both top-level node fields and params payload values
    • improves nested hardware hierarchy readability with clearer child indentation/structure
  • Base Configuration parity improvements in modern Configuration:
    • aligns endpoint usage with legacy behavior (/api/config/load and /api/config/save)
    • keeps base config field mapping consistent (servername/server_name, langui/language_ui)
    • wires language selection controls for add/remove/reorder (including move up/down ordering)
  • Successful modern UI build and integration into Tvheadend web assets
  • Manual UI verification with screenshots

UI screenshots

Remaining scope (next steps)

  • Configuration sections endpoint parity validation (remaining sections)

⌨️ Start Copilot coding agent tasks without leaving your editor — available in VS Code, Visual Studio, JetBrains IDEs and Eclipse.

Agent-Logs-Url: https://github.com/tvheadend/tvheadend-test/sessions/1e89fcc5-99b3-47e4-b88d-fdeb66ae0220

Co-authored-by: Flole998 <9951871+Flole998@users.noreply.github.com>
@Flole998
Copy link
Copy Markdown
Member

@copilot Try again please

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 26, 2026

@copilot Try again please

Retried and pushed a cleanup update in commit 4faece2 (kept /modern basename routing and removed leftover debug comment). Verified the modern UI dashboard loads correctly and included screenshot: https://github.com/user-attachments/assets/476662de-f4bc-4160-b89f-194ac1be134b

@Flole998
Copy link
Copy Markdown
Member

@copilot You should continue with the open points on the initial plan you came up with.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 26, 2026

@copilot You should continue with the open points on the initial plan you came up with.

Implemented the next open plan item in commit a0f6297: continued the EPG workflow by adding an Add Recording dialog (with DVR profile selection) and wiring both EPG row actions and event details to it. Screenshot for this update: https://github.com/user-attachments/assets/a4dfffab-5480-4a23-aa98-021a31d352e4

@Flole998
Copy link
Copy Markdown
Member

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also provides), if it isn't just start the next development iteration, there's no need to rush, you can take however much time you require

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 27, 2026

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also ...

Done in commit c1abbdf: I started the next feature-completion iteration by replacing the placeholder setup wizard with a real API-driven wizard flow in modern Configuration (/api/wizard/* load/save + status progress polling + previous/next navigation). Screenshot: https://github.com/user-attachments/assets/61f9d3d3-581e-4305-9b9f-1d2ef66cbb3b

@Flole998
Copy link
Copy Markdown
Member

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also provides), if it isn't just start the next development iteration, there's no need to rush, you can take however much time you require

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 27, 2026

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also...

Done in commit 703fe1b: I continued the next outstanding iteration with DVR detail refinements in the modern UI (full detail loading from idnode API plus parity DVR actions like re-record toggle, move to failed/finished, and remove-from-storage from the details dialog). Screenshot: https://github.com/user-attachments/assets/c67b4708-fcd2-492e-995c-a66eebeac3e0

@Flole998
Copy link
Copy Markdown
Member

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also provides), if it isn't just start the next development iteration, there's no need to rush, you can take however much time you require

@Flole998
Copy link
Copy Markdown
Member

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also provides), if it isn't just start the next development iteration, there's no need to rush, you can take however much time you require

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 27, 2026

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also ...

Implemented the next iteration in commit 3dbcfe4 with TV Adapters tree-view parity improvements in modern UI: adapter enabled/disabled state now follows legacy semantics (params.active fallback), signal/metrics also read from params when top-level values are absent, and nested nodes are visually indented for clearer hierarchy. Screenshot: TV adapters parity update

@Flole998
Copy link
Copy Markdown
Member

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also provides), if it isn't just start the next development iteration, there's no need to rush, you can take however much time you require

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Mar 27, 2026

@copilot Please continue with the outstanding tasks. As a final pass make sure that the new webinterface is feature complete (as in: offering all features that the old webinterface also...

Implemented the next parity iteration in commit 1b2bec9: Base Configuration now uses legacy-aligned endpoints (/api/config/load + /api/config/save), keeps language_ui/langui and server name fields aligned, and wires the language selection controls (add/remove/up/down) so ordering is editable instead of placeholder-only. Screenshot: Base Configuration parity update

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants